package com.game.modular.game.playerAssets.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.game.modular.gameCore.cultivate.domain.CoreProp;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import org.springframework.data.annotation.Id;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 背包物品(PlayerBag)表实体类
 *
 * @author cxy
 * @since 2024-08-07 19:15:57
 */
@ApiModel("背包物品")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
@SuppressWarnings("serial")
public class PlayerBag extends Model<PlayerBag> {// swagger2,mybatis-plus
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 生成实体字段
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("id")
    private Long id;

    @NotNull
    @ApiModelProperty("账号uid")
    private Long uid;

    @NotNull
    @ApiModelProperty("道具id")
    private Long corePropId;

    @ApiModelProperty("数量")
    private Long num;

    @ApiModelProperty("堆叠上限")
    private Long stack;

    @ApiModelProperty("当前使用的玩家id")
    private Long playerHeroId;

    @ApiModelProperty("状态 1.正常 2.使用中")
    private Integer status;

    @ApiModelProperty("获取时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    private Date getTime;

    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 序列化版本号
    @TableField(exist = false)
    private static final long serialVersionUID = 164829233726232017L;
    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 获取主键值
    @Override
    public Serializable pkVal() {
        return this.id;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 非数据库字段
    @TableField(exist = false)
    @ApiModelProperty("道具信息")
    private CoreProp coreProp;
    /////////////////////////////////////////////////////////////////////////////////////////////////////////    领域业务

}

